package com.dalin.platform.loa.service;

import java.util.List;
import java.util.Map;

import com.dalin.platform.loa.vo.WsCurrentUserInfo;
import com.dalin.platform.loa.vo.WsDicItemVo;

/*****************************************************************************
 * @content: 字典表访问接口                                                                                                                   *
 * @author : 那建林                                                                                                                                *
 * @crtDate: 2010-06-05                                                     *
 * @version: 1.0                                                            *
 ****************************************************************************/
public interface DicService {
	/*************************************************************************
	 * @content: 查询此工程所拥有的所有代码表
	 * @param  : projectId 工程ID
	 * @return : Map<String, List<WsDicItemVo>>
	 * @author : 那建林                                        
	 * @crtDate: 2009-07-05  
	 * @modDate: 2010-07-05  
	 */
	Map<String, List<WsDicItemVo>> queryAllProjectItems(Long projectId) throws Exception;
	
	
	/*************************************************************************
	 * @content: 根据类型编码来查找此代码对应的所有细目集合
	 * @param  : projectId 工程ID
	 * @param  : typeCode 类型编码
	 * @return : List<WsDicItemVo>
	 * @author : 那建林                                        
	 * @crtDate: 2009-05-19  
	 * @modDate: 2010-06-06  
	 */
	List<WsDicItemVo> queryItems(Long projectId, String typeCode) throws Exception;
	
	
	/*************************************************************************
	 * @content: 根据用户所拥有的带权限查询
	 * @param  : lum 用户登录识别码
	 * @param  : typeCode 类型编码
	 * @return : List<WsDicItemVo>
	 * @author : 那建林                                        
	 * @crtDate: 2009-05-19  
	 * @modDate: 2010-06-06  
	 */	
	List<WsDicItemVo> queryLoaItems(WsCurrentUserInfo cui, String typeCode) throws Exception;

	
	/*************************************************************************
	 * @content: 根据类型编码和父级编码查询
	 * @param  : lum 用户登录识别码
	 * @param  : typeCode 类型编码
	 * @param  : parentItemCode 父编码
	 * @return : List<WsDicItemVo>
	 * @author : 那建林                                        
	 * @crtDate: 2009-08-19  
	 * @modDate: 2010-06-06
	 */
	List<WsDicItemVo> queryItemsByParent(WsCurrentUserInfo cui,
			String typeCode, String parentItemCode) throws Exception;
	
	
	/*************************************************************************
	 * @content: 根据类型编码和父级编码查询
	 * @param  : lum 用户登录识别码
	 * @param  : typeCode 类型编码
	 * @param  : parentItemCode 父编码
	 * @return : List<WsDicItemVo>
	 * @author : 那建林                                        
	 * @crtDate: 2009-08-19  
	 * @modDate: 2010-06-06
	 */
	List<WsDicItemVo> queryLoaItemsByParent(WsCurrentUserInfo cui,
			String typeCode, Integer parentItemCode) throws Exception;
	
	
	/*************************************************************************
	 * @content: 根据类型编码和细目编码查确定唯一细目记录
	 * @param  : projectId 项目ID
	 * @param  : typeCode 类型编码
	 * @param  : itemCode 细目编码
	 * @return : WsDicItemVo
	 * @author : 那建林                                        
	 * @crtDate: 2009-05-19  
	 * @modDate: 2010-06-06  
	 */
	String findItemName(Long projectId, String typeCode, Integer itemCode) throws Exception;
	
	
	
	
	
	
	
	
	
	
	
	
	
//	/*************************************************************************
//	 * @content: 根据类型编码和父级编码查询
//	 * @param  : 类型编码
//	 * @param  : 父编码
//	 * @return : 返回List<WsDicItemVo>集合
//	 * @throws : java.lang.Exception
//	 * @author : 那建林                                        
//	 * @crtDate: 2009-08-19  
//	 */
//	List queryItemListByTypeCodeAndParent(
//			String typeCode, String parentItemCode) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 根据类型编码来查找明细一级目录实体
//	 * @param  : 类型编码
//	 * @param  : 父编码
//	 * @return : 返回List<DictionaryItem>集合
//	 * @throws : java.lang.Exception
//	 * @author : 那建林                                        
//	 * @crtDate: 2009-07-27  
//	 */
//	List queryItemEntityListByTypeCode(String typeCode, String parentItemCode) throws Exception;
//	
//	
//	/*************************************************************************
//	 * @content: 根据类型编码和细目名称确定唯一细目记录
//	 * @param  : 类型编码
//	 * @param  : 细目名称
//	 * @return : WsDicItemVo
//	 * @throws : java.lang.Exception
//	 * @author : 那建林                                        
//	 * @crtDate: 2009-09-02  
//	 */
//	WsDicItemVo findItemVoByTypeCodeAndItemName(
//			String typeCode, String itemName) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 先根据ids删除记录，然后再根据NormalTreeVo中的id判断是新增还是更改
//	 * @param  : ItemTreeVo List
//	 * @param  : 删除的Id字符串，1,2,3形式
//	 * @throws : java.lang.Exception
//	 * @author : 那建林
//	 * @crtDate: 2009-07-27
//	 */
//	void addUpDelItems(List itemTreeList, Long[] delIdArray) throws Exception;
//	
//	
//	
//	/*************************************************************************
//	 * @content: 根据条件查询字典表类型
//	 * @param  : 封装好的查询条件
//	 * @throws : java.lang.Exception
//	 * @return : PageInfo
//	 * @author : 那建林
//	 * @crtDate: 2009-07-13
//	 */
//	PageInfo queryDictionaryTypes(DictionaryTypeCondition cond) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 根据ID主键查找字典表类型信息
//	 * @param  : ID主键 
//	 * @throws : java.lang.Exception
//	 * @author : 那建林
//	 * @crtDate: 2009-07-13
//	 */
//	DicTypeVo findDictionaryTypeById(String id) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 增加字典表类型信息
//	 * @param  : DicTypeVo
//	 * @throws : java.lang.Exception
//	 * @author : 那建林
//	 * @crtDate: 2009-07-13
//	 */
//	void addDictionaryType(DicTypeVo vo) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 修改字典表类型信息
//	 * @param  : DicTypeVo
//	 * @throws : java.lang.Exception
//	 * @author : 那建林
//	 * @crtDate: 2009-07-13
//	 */
//	void modifyDictionaryType(DicTypeVo vo) throws Exception;
//	
//	/*************************************************************************
//	 * @content: 删除字典表类型信息
//	 * @param  : 以逗号隔开的ID字符串，如1,2,3,4,and so on
//	 * @throws : java.lang.Exception
//	 * @author : 那建林
//	 * @crtDate: 2009-07-13
//	 */
//	void delDictionaryTypesByIds(String ids) throws Exception;
}
